package com.version1_3.dao;

import com.alibaba.fastjson.JSONArray;
import com.version1_3.model.UserModel;

import java.util.List;
import java.util.Map;

/**
 * Created by kuibu on 15/12/25.
 */
public interface UserDao1_3 {

    /**
     * 用户网页注册
     */
    public int htmlRegister(String telnumber, String password, String inviteCode);

    /**
     * 带邀请码注册
     */
    public int registerWithInviteCode(String telnumber, String password, String inviteCode, String uuid);

    /**
     * 获取用户邀请码
     */
    public String getInviteCode(String telnumber);

    /**
     * 更新用户某个一级分类下的关注分类信息(包括三级分类内容和三级分类顺序)
     */
    public boolean updateFirstFocus(JSONArray firstFocusJsonArray, int firstType, int userId);

    /**
     * 三级分类置顶
     */
    public boolean topThirdType(int thirdType, int firstType, int userId);

    /**
     * 取消三级分类置顶
     */
    public boolean removeTopThirdType(int thirdType, int firstType, int userId);

    /**
     * 更新用户关注列表
     */
    public boolean updateFocusList(JSONArray jsonArray, int userId);

    /**
     * 用户登陆
     */
    public UserModel login(int userId, String telnumber, String password);


    /**
     * 根据第三方openid获取用户信息 - iOS
     */
    public UserModel getUserInfo(String openid);

    /**
     * 根据第三方openid获取用户信息 - Android
     */
    public UserModel getUserInfoAnroid(String openid);

    /**
     * 搜索学校
     */
    public List<Map<String, Object>> searchSchool(String schoolKey);

    /**
     * 获取用户参与活动信息
     */
    public String getUserJoinedActivityIds(int userId);

    /**
     * 更新用户参与活动信息
     */
    public boolean updateUserJoinedActivityIds(int userId, JSONArray activityIds);

    /**
     * 完善用户身高体重信息
     */
    public boolean setBodyInfo(int userId, double height, double weight,String name,String school);

    /**
     * 获取用户
     */
    public Map<String, Object> getUserBodyInfo(int userId);

    /**
     * 根据第三方参数尝试获取用户信息
     */
    public Map<String, Object> getUserInfoWithThirdPartLogin(String openid, String os);

    public int registerWithThirdPartLogin(final String openid, final String token, String uuid);

    public Map<String, Object> getUserInfo(int userId);

    public UserModel freshUserToken(int userId, String token);

    /**
     * 获取用户模块积分
     */
    public int getModuleCoin(int userId, String module, String action);

    /**
     * 增加用户总积分(除跬步公益跑外)
     */
    public boolean addUserCountCoin(int userId, int addCoin);

    /**
     * 获取用户总积分(除跬步公益跑外)
     */
    public int getUserCountCoin(int userId);

    public int getUserDaysCoinCount(int userId);

    public int getModuleCoinCount(int userId, String module, String action);
}
